home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: LaTeX Document
(document/latex).
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| LaTeX Document (document/latex)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| LaTeX 2e document text
| default
| |
99%
| file
| LaTeX document text
| default
| |
98%
| file
| LaTeX auxiliary file, ASCII text
| default
| |
100%
| TrID
| LaTeX 2e document (with rem)
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 25 0a 25 20 5c 69 66 66 | 61 6c 73 65 0a 25 25 20 |%.% \iff|alse.%% |
|00000010| 46 69 6c 65 3a 20 6b 65 | 79 76 61 6c 2e 64 74 78 |File: ke|yval.dtx|
|00000020| 20 43 6f 70 79 72 69 67 | 68 74 20 28 43 29 20 31 | Copyrig|ht (C) 1|
|00000030| 39 39 33 2d 31 39 39 34 | 20 44 61 76 69 64 20 43 |993-1994| David C|
|00000040| 61 72 6c 69 73 6c 65 0a | 25 0a 25 3c 2a 64 74 78 |arlisle.|%.%<*dtx|
|00000050| 3e 0a 20 20 20 20 20 20 | 20 20 20 20 5c 50 72 6f |>. | \Pro|
|00000060| 76 69 64 65 73 46 69 6c | 65 7b 6b 65 79 76 61 6c |videsFil|e{keyval|
|00000070| 2e 64 74 78 7d 0a 25 3c | 2f 64 74 78 3e 0a 25 3c |.dtx}.%<|/dtx>.%<|
|00000080| 2a 21 70 6c 61 69 6e 3e | 0a 25 3c 70 61 63 6b 61 |*!plain>|.%<packa|
|00000090| 67 65 26 21 70 6c 61 69 | 6e 3e 5c 4e 65 65 64 73 |ge&!plai|n>\Needs|
|000000a0| 54 65 58 46 6f 72 6d 61 | 74 7b 4c 61 54 65 58 32 |TeXForma|t{LaTeX2|
|000000b0| 65 7d 0a 25 3c 70 61 63 | 6b 61 67 65 26 21 70 6c |e}.%<pac|kage&!pl|
|000000c0| 61 69 6e 3e 5c 50 72 6f | 76 69 64 65 73 50 61 63 |ain>\Pro|videsPac|
|000000d0| 6b 61 67 65 7b 6b 65 79 | 76 61 6c 7d 0a 25 3c 64 |kage{key|val}.%<d|
|000000e0| 72 69 76 65 72 3e 20 20 | 20 20 20 20 20 20 5c 50 |river> | \P|
|000000f0| 72 6f 76 69 64 65 73 46 | 69 6c 65 7b 6b 65 79 76 |rovidesF|ile{keyv|
|00000100| 61 6c 2e 64 72 76 7d 0a | 25 20 5c 66 69 0a 25 20 |al.drv}.|% \fi.% |
|00000110| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 5c | | \|
|00000120| 50 72 6f 76 69 64 65 73 | 46 69 6c 65 7b 6b 65 79 |Provides|File{key|
|00000130| 76 61 6c 2e 64 74 78 7d | 0a 20 20 20 20 20 20 20 |val.dtx}|. |
|00000140| 20 20 20 20 20 20 20 20 | 20 20 5b 31 39 39 34 2f | | [1994/|
|00000150| 30 39 2f 31 32 20 76 31 | 2e 30 38 20 6b 65 79 3d |09/12 v1|.08 key=|
|00000160| 76 61 6c 75 65 20 70 61 | 72 73 65 72 20 28 44 50 |value pa|rser (DP|
|00000170| 43 29 5d 0a 25 0a 25 20 | 5c 69 66 66 61 6c 73 65 |C)].%.% |\iffalse|
|00000180| 0a 25 3c 2f 21 70 6c 61 | 69 6e 3e 0a 25 3c 2a 64 |.%</!pla|in>.%<*d|
|00000190| 72 69 76 65 72 3e 0a 5c | 64 6f 63 75 6d 65 6e 74 |river>.\|document|
|000001a0| 63 6c 61 73 73 7b 6c 74 | 78 64 6f 63 7d 0a 5c 75 |class{lt|xdoc}.\u|
|000001b0| 73 65 70 61 63 6b 61 67 | 65 7b 6b 65 79 76 61 6c |sepackag|e{keyval|
|000001c0| 7d 0a 5c 62 65 67 69 6e | 7b 64 6f 63 75 6d 65 6e |}.\begin|{documen|
|000001d0| 74 7d 0a 20 5c 44 6f 63 | 49 6e 70 75 74 7b 6b 65 |t}. \Doc|Input{ke|
|000001e0| 79 76 61 6c 2e 64 74 78 | 7d 0a 5c 65 6e 64 7b 64 |yval.dtx|}.\end{d|
|000001f0| 6f 63 75 6d 65 6e 74 7d | 0a 25 3c 2f 64 72 69 76 |ocument}|.%</driv|
|00000200| 65 72 3e 0a 25 20 5c 66 | 69 0a 25 0a 25 20 5c 47 |er>.% \f|i.%.% \G|
|00000210| 65 74 46 69 6c 65 49 6e | 66 6f 7b 6b 65 79 76 61 |etFileIn|fo{keyva|
|00000220| 6c 2e 64 74 78 7d 0a 25 | 20 5c 74 69 74 6c 65 7b |l.dtx}.%| \title{|
|00000230| 54 68 65 20 5c 74 65 78 | 74 73 66 7b 6b 65 79 76 |The \tex|tsf{keyv|
|00000240| 61 6c 7d 20 70 61 63 6b | 61 67 65 5c 74 68 61 6e |al} pack|age\than|
|00000250| 6b 73 7b 54 68 69 73 20 | 66 69 6c 65 0a 25 20 20 |ks{This |file.% |
|00000260| 20 20 20 20 20 20 68 61 | 73 20 76 65 72 73 69 6f | ha|s versio|
|00000270| 6e 20 6e 75 6d 62 65 72 | 20 5c 66 69 6c 65 76 65 |n number| \fileve|
|00000280| 72 73 69 6f 6e 2c 20 6c | 61 73 74 0a 25 20 20 20 |rsion, l|ast.% |
|00000290| 20 20 20 20 20 72 65 76 | 69 73 65 64 20 5c 66 69 | rev|ised \fi|
|000002a0| 6c 65 64 61 74 65 2e 7d | 7d 0a 25 20 5c 61 75 74 |ledate.}|}.% \aut|
|000002b0| 68 6f 72 7b 44 61 76 69 | 64 20 43 61 72 6c 69 73 |hor{Davi|d Carlis|
|000002c0| 6c 65 5c 5c 63 61 72 6c | 69 73 6c 65 40 63 73 2e |le\\carl|isle@cs.|
|000002d0| 6d 61 6e 2e 61 63 2e 75 | 6b 7d 0a 25 20 5c 64 61 |man.ac.u|k}.% \da|
|000002e0| 74 65 7b 5c 66 69 6c 65 | 64 61 74 65 7d 0a 25 20 |te{\file|date}.% |
|000002f0| 5c 6d 61 6b 65 74 69 74 | 6c 65 0a 25 0a 25 20 5c |\maketit|le.%.% \|
|00000300| 62 65 67 69 6e 7b 61 62 | 73 74 72 61 63 74 7d 0a |begin{ab|stract}.|
|00000310| 25 20 20 41 20 5c 4c 61 | 54 65 58 5c 20 70 61 63 |% A \La|TeX\ pac|
|00000320| 6b 61 67 65 20 69 6d 70 | 6c 65 6d 65 6e 74 69 6e |kage imp|lementin|
|00000330| 67 20 61 20 73 79 73 74 | 65 6d 20 61 6c 6c 6f 77 |g a syst|em allow|
|00000340| 69 6e 67 20 74 68 65 20 | 73 65 74 74 69 6e 67 0a |ing the |setting.|
|00000350| 25 20 20 6f 66 20 70 61 | 72 61 6d 65 74 65 72 73 |% of pa|rameters|
|00000360| 20 28 6f 72 20 60 6e 61 | 6d 65 64 20 61 72 67 75 | (or `na|med argu|
|00000370| 6d 65 6e 74 73 27 20 77 | 69 74 68 20 61 20 0a 25 |ments' w|ith a .%|
|00000380| 20 20 5c 6d 65 74 61 7b | 6b 65 79 7d 24 7b 7d 3d | \meta{|key}${}=|
|00000390| 7b 7d 24 5c 6d 65 74 61 | 7b 76 61 6c 75 65 7d 20 |{}$\meta|{value} |
|000003a0| 73 79 6e 74 61 78 2e 0a | 25 0a 25 20 20 45 67 3a |syntax..|%.% Eg:|
|000003b0| 20 7c 5c 66 6f 6f 5b 68 | 65 69 67 68 74 3d 33 69 | |\foo[h|eight=3i|
|000003c0| 6e 2c 20 73 68 61 64 6f | 77 20 3d 20 74 72 75 65 |n, shado|w = true|
|000003d0| 20 5d 7b 62 61 72 7d 7c | 0a 25 20 5c 65 6e 64 7b | ]{bar}||.% \end{|
|000003e0| 61 62 73 74 72 61 63 74 | 7d 0a 25 0a 25 20 5c 43 |abstract|}.%.% \C|
|000003f0| 68 65 63 6b 53 75 6d 7b | 31 31 30 7d 0a 25 0a 25 |heckSum{|110}.%.%|
|00000400| 20 5c 63 68 61 6e 67 65 | 73 7b 76 31 2e 30 33 7d | \change|s{v1.03}|
|00000410| 0a 25 20 20 20 20 20 20 | 20 20 20 7b 31 39 39 33 |.% | {1993|
|00000420| 2f 31 30 2f 31 33 7d 7b | 49 6e 69 74 69 61 6c 20 |/10/13}{|Initial |
|00000430| 76 65 72 73 69 6f 6e 7d | 0a 25 20 5c 63 68 61 6e |version}|.% \chan|
|00000440| 67 65 73 7b 76 31 2e 30 | 34 7d 7b 31 39 39 33 2f |ges{v1.0|4}{1993/|
|00000450| 31 31 2f 31 35 7d 0a 25 | 20 20 20 20 20 20 20 20 |11/15}.%| |
|00000460| 20 7b 55 70 67 72 61 64 | 65 20 61 66 74 65 72 20 | {Upgrad|e after |
|00000470| 63 6f 6d 6d 65 6e 74 73 | 20 66 72 6f 6d 20 54 69 |comments| from Ti|
|00000480| 6d 6f 74 68 79 20 76 61 | 6e 20 5a 61 6e 64 74 7d |mothy va|n Zandt}|
|00000490| 0a 25 20 5c 63 68 61 6e | 67 65 73 7b 76 31 2e 30 |.% \chan|ges{v1.0|
|000004a0| 35 7d 7b 31 39 39 33 2f | 31 31 2f 31 37 7d 0a 25 |5}{1993/|11/17}.%|
|000004b0| 20 20 20 20 20 20 20 20 | 20 7b 46 75 72 74 68 65 | | {Furthe|
|000004c0| 72 20 73 6d 61 6c 6c 20 | 69 6d 70 72 6f 76 65 6d |r small |improvem|
|000004d0| 65 6e 74 73 7d 0a 25 20 | 5c 63 68 61 6e 67 65 73 |ents}.% |\changes|
|000004e0| 7b 76 31 2e 30 36 7d 7b | 31 39 39 34 2f 30 32 2f |{v1.06}{|1994/02/|
|000004f0| 30 31 7d 0a 25 20 20 20 | 20 20 20 20 20 20 7b 55 |01}.% | {U|
|00000500| 70 64 61 74 65 20 74 6f | 20 4c 61 54 65 58 32 65 |pdate to| LaTeX2e|
|00000510| 7d 0a 25 20 5c 63 68 61 | 6e 67 65 73 7b 76 31 2e |}.% \cha|nges{v1.|
|00000520| 30 37 7d 7b 31 39 39 34 | 2f 30 33 2f 31 35 7d 0a |07}{1994|/03/15}.|
|00000530| 25 20 20 20 20 20 20 20 | 20 20 7b 4e 65 77 20 73 |% | {New s|
|00000540| 74 79 6c 65 20 6c 74 78 | 64 6f 63 7d 0a 25 20 5c |tyle ltx|doc}.% \|
|00000550| 63 68 61 6e 67 65 73 7b | 76 31 2e 30 38 7d 7b 31 |changes{|v1.08}{1|
|00000560| 39 39 34 2f 30 39 2f 31 | 32 7d 0a 25 20 20 20 20 |994/09/1|2}.% |
|00000570| 20 20 20 20 20 7b 49 6d | 70 72 6f 76 65 20 64 6f | {Im|prove do|
|00000580| 63 73 74 72 69 70 20 68 | 61 6e 64 6c 69 6e 67 7d |cstrip h|andling}|
|00000590| 0a 25 0a 25 0a 25 20 54 | 68 69 73 20 70 61 63 6b |.%.%.% T|his pack|
|000005a0| 61 67 65 20 69 6d 70 6c | 65 6d 65 6e 74 73 20 61 |age impl|ements a|
|000005b0| 20 73 79 73 74 65 6d 20 | 6f 66 20 64 65 66 69 6e | system |of defin|
|000005c0| 69 6e 67 20 61 6e 64 20 | 75 73 69 6e 67 20 73 65 |ing and |using se|
|000005d0| 74 73 20 6f 66 0a 25 20 | 70 61 72 61 6d 65 74 65 |ts of.% |paramete|
|000005e0| 72 73 2c 20 77 68 69 63 | 68 20 61 72 65 20 73 65 |rs, whic|h are se|
|000005f0| 74 20 75 73 69 6e 67 20 | 74 68 65 20 73 79 6e 74 |t using |the synt|
|00000600| 61 78 20 5c 6d 65 74 61 | 7b 6b 65 79 7d 3d 5c 6d |ax \meta|{key}=\m|
|00000610| 65 74 61 7b 76 61 6c 75 | 65 7d 2e 0a 25 0a 25 20 |eta{valu|e}..%.% |
|00000620| 46 6f 72 20 65 61 63 68 | 20 6b 65 79 77 6f 72 64 |For each| keyword|
|00000630| 20 69 6e 20 73 75 63 68 | 20 61 20 73 65 74 2c 20 | in such| a set, |
|00000640| 74 68 65 72 65 20 65 78 | 69 73 74 73 20 61 20 66 |there ex|ists a f|
|00000650| 75 6e 63 74 69 6f 6e 20 | 77 68 69 63 68 20 69 73 |unction |which is|
|00000660| 0a 25 20 63 61 6c 6c 65 | 64 20 77 68 65 6e 65 76 |.% calle|d whenev|
|00000670| 65 72 20 74 68 65 20 70 | 61 72 61 6d 65 74 65 72 |er the p|arameter|
|00000680| 20 61 70 70 65 61 72 73 | 20 69 6e 20 61 20 70 61 | appears| in a pa|
|00000690| 72 61 6d 65 74 65 72 20 | 6c 69 73 74 2e 20 46 6f |rameter |list. Fo|
|000006a0| 72 0a 25 20 69 6e 73 74 | 61 6e 63 65 20 69 66 20 |r.% inst|ance if |
|000006b0| 74 68 65 20 73 65 74 20 | 7c 64 70 63 7c 20 69 73 |the set ||dpc| is|
|000006c0| 20 74 6f 20 68 61 76 65 | 20 74 68 65 20 6b 65 79 | to have| the key|
|000006d0| 77 6f 72 64 20 7c 73 63 | 61 6c 65 7c 20 74 68 65 |word |sc|ale| the|
|000006e0| 6e 20 49 0a 25 20 77 6f | 75 6c 64 20 64 65 66 69 |n I.% wo|uld defi|
|000006f0| 6e 65 2e 5c 5c 0a 25 20 | 7c 20 5c 64 65 66 69 6e |ne.\\.% || \defin|
|00000700| 65 40 6b 65 79 7b 64 70 | 63 7d 7b 73 63 61 6c 65 |e@key{dp|c}{scale|
|00000710| 7d 7b 73 63 61 6c 65 20 | 28 7b 5c 74 74 5c 73 74 |}{scale |({\tt\st|
|00000720| 72 69 6e 67 23 31 7d 29 | 5c 5c 7d 7c 5c 5c 0a 25 |ring#1})|\\}|\\.%|
|00000730| 20 54 68 65 20 66 69 72 | 73 74 20 61 72 67 75 6d | The fir|st argum|
|00000740| 65 6e 74 20 6f 66 20 7c | 5c 64 65 66 69 6e 65 40 |ent of ||\define@|
|00000750| 6b 65 79 7c 20 69 73 20 | 74 68 65 20 20 73 65 74 |key| is |the set|
|00000760| 20 6f 66 20 6b 65 79 77 | 6f 72 64 73 20 62 65 69 | of keyw|ords bei|
|00000770| 6e 67 0a 25 20 75 73 65 | 64 2c 20 74 68 65 20 73 |ng.% use|d, the s|
|00000780| 65 63 6f 6e 64 20 69 73 | 20 74 68 65 20 6b 65 79 |econd is| the key|
|00000790| 77 6f 72 64 2c 20 61 6e | 64 20 74 68 65 20 74 68 |word, an|d the th|
|000007a0| 69 72 64 20 69 73 20 74 | 68 65 20 66 75 6e 63 74 |ird is t|he funct|
|000007b0| 69 6f 6e 20 74 6f 0a 25 | 20 63 61 6c 6c 2e 20 54 |ion to.%| call. T|
|000007c0| 68 69 73 20 66 75 6e 63 | 74 69 6f 6e 20 77 69 6c |his func|tion wil|
|000007d0| 6c 20 62 65 20 67 69 76 | 65 6e 20 61 73 20 7c 23 |l be giv|en as |#|
|000007e0| 31 7c 20 74 68 65 20 5c | 6d 65 74 61 7b 76 61 6c |1| the \|meta{val|
|000007f0| 75 65 7d 20 73 70 65 63 | 69 66 69 65 64 0a 25 20 |ue} spec|ified.% |
|00000800| 62 79 20 74 68 65 20 75 | 73 65 72 2e 0a 25 0a 25 |by the u|ser..%.%|
|00000810| 20 4e 6f 72 6d 61 6c 6c | 79 20 69 74 20 69 73 20 | Normall|y it is |
|00000820| 61 6e 20 65 72 72 6f 72 | 20 74 6f 20 6f 6d 69 74 |an error| to omit|
|00000830| 20 74 68 65 20 60 3d 5c | 6d 65 74 61 7b 76 61 6c | the `=\|meta{val|
|00000840| 75 65 7d 27 20 68 6f 77 | 65 76 65 72 20 69 66 20 |ue}' how|ever if |
|00000850| 61 6e 0a 25 20 6f 70 74 | 69 6f 6e 61 6c 20 5c 6d |an.% opt|ional \m|
|00000860| 65 74 61 7b 76 61 6c 75 | 65 7d 20 69 73 20 73 75 |eta{valu|e} is su|
|00000870| 70 70 6c 69 65 64 20 77 | 68 65 6e 20 74 68 65 20 |pplied w|hen the |
|00000880| 6b 65 79 77 6f 72 64 20 | 69 73 20 64 65 66 69 6e |keyword |is defin|
|00000890| 65 64 2c 20 74 68 65 6e | 0a 25 20 6a 75 73 74 20 |ed, then|.% just |
|000008a0| 74 68 65 20 6b 65 79 77 | 6f 72 64 20 6e 65 65 64 |the keyw|ord need|
|000008b0| 20 62 65 20 73 75 70 70 | 6c 69 65 64 2e 5c 5c 0a | be supp|lied.\\.|
|000008c0| 25 20 7c 5c 64 65 66 69 | 6e 65 40 6b 65 79 7b 64 |% |\defi|ne@key{d|
|000008d0| 70 63 7d 7b 63 6c 69 70 | 7d 5b 74 72 75 65 5d 7b |pc}{clip|}[true]{|
|000008e0| 2e 2e 2e 7d 7c 5c 5c 0a | 25 20 46 6f 72 20 60 7c |...}|\\.|% For `||
|000008f0| 63 6c 69 70 7c 27 20 79 | 6f 75 20 63 61 6e 20 67 |clip|' y|ou can g|
|00000900| 6f 20 60 7c 63 6c 69 70 | 20 3d 20 74 72 75 65 7c |o `|clip| = true||
|00000910| 27 20 6f 72 20 60 7c 63 | 6c 69 70 20 3d 20 66 61 |' or `|c|lip = fa|
|00000920| 6c 73 65 7c 27 20 6f 72 | 0a 25 20 6a 75 73 74 20 |lse|' or|.% just |
|00000930| 60 7c 63 6c 69 70 7c 27 | 2c 20 77 68 69 63 68 20 |`|clip|'|, which |
|00000940| 69 73 20 74 68 65 20 73 | 61 6d 65 20 61 73 20 60 |is the s|ame as `|
|00000950| 7c 63 6c 69 70 20 3d 20 | 74 72 75 65 7c 27 0a 25 ||clip = |true|'.%|
|00000960| 0a 25 20 54 6f 20 75 73 | 65 20 74 68 65 73 65 20 |.% To us|e these |
|00000970| 6b 65 79 77 6f 72 64 73 | 2c 20 6a 75 73 74 20 63 |keywords|, just c|
|00000980| 61 6c 6c 20 60 7c 5c 73 | 65 74 6b 65 79 73 7c 27 |all `|\s|etkeys|'|
|00000990| 20 77 69 74 68 20 61 20 | 63 6f 6d 6d 61 0a 25 20 | with a |comma.% |
|000009a0| 73 65 70 61 72 61 74 65 | 64 20 6c 69 73 74 20 6f |separate|d list o|
|000009b0| 66 20 73 65 74 74 69 6e | 67 73 2c 20 65 61 63 68 |f settin|gs, each|
|000009c0| 20 6f 66 20 74 68 65 20 | 66 6f 72 6d 0a 25 20 5c | of the |form.% \|
|000009d0| 6d 65 74 61 7b 6b 65 79 | 7d 3d 5c 6d 65 74 61 7b |meta{key|}=\meta{|
|000009e0| 76 61 6c 75 65 7d 2c 20 | 6f 72 20 6a 75 73 74 20 |value}, |or just |
|000009f0| 5c 6d 65 74 61 7b 6b 65 | 79 7d 2e 20 41 6e 79 20 |\meta{ke|y}. Any |
|00000a00| 77 68 69 74 65 20 73 70 | 61 63 65 20 61 72 6f 75 |white sp|ace arou|
|00000a10| 6e 64 0a 25 20 74 68 65 | 20 60 7c 3d 7c 27 20 61 |nd.% the| `|=|' a|
|00000a20| 6e 64 20 60 7c 2c 7c 27 | 20 69 73 20 69 67 6e 6f |nd `|,|'| is igno|
|00000a30| 72 65 64 2e 0a 25 0a 25 | 20 41 73 20 74 68 65 20 |red..%.%| As the |
|00000a40| 5c 6d 65 74 61 7b 6b 65 | 79 7d 20 69 73 20 70 61 |\meta{ke|y} is pa|
|00000a50| 73 73 65 64 20 61 73 20 | 61 20 6d 61 63 72 6f 20 |ssed as |a macro |
|00000a60| 61 72 67 75 6d 65 6e 74 | 2c 20 69 66 20 69 74 20 |argument|, if it |
|00000a70| 63 6f 6e 73 69 73 74 73 | 0a 25 20 65 6e 74 69 72 |consists|.% entir|
|00000a80| 65 6c 79 20 6f 66 20 61 | 20 7c 7b 20 7d 7c 20 67 |ely of a| |{ }| g|
|00000a90| 72 6f 75 70 2c 20 74 68 | 65 20 6f 75 74 65 72 20 |roup, th|e outer |
|00000aa0| 20 62 72 61 63 65 73 20 | 61 72 65 20 73 74 72 69 | braces |are stri|
|00000ab0| 70 70 65 64 20 6f 66 66 | 2e 20 54 68 75 73 0a 25 |pped off|. Thus.%|
|00000ac0| 20 7c 2c 6b 65 79 3d 66 | 6f 6f 2c 7c 20 61 6e 64 | |,key=f|oo,| and|
|00000ad0| 20 7c 6b 65 79 3d 2c 7b | 66 6f 6f 7d 2c 7c 20 61 | |key=,{|foo},| a|
|00000ae0| 72 65 20 65 71 75 69 76 | 61 6c 65 6e 74 2e 20 54 |re equiv|alent. T|
|00000af0| 68 69 73 20 66 61 63 74 | 20 65 6e 61 62 6c 65 73 |his fact| enables|
|00000b00| 20 6f 6e 65 20 74 6f 0a | 25 20 60 68 69 64 65 27 | one to.|% `hide'|
|00000b10| 20 61 6e 79 20 63 6f 6d | 6d 61 73 20 6f 72 20 65 | any com|mas or e|
|00000b20| 71 75 61 6c 73 20 73 69 | 67 6e 73 20 74 68 61 74 |quals si|gns that|
|00000b30| 20 6d 75 73 74 20 61 70 | 70 65 61 72 20 69 6e 20 | must ap|pear in |
|00000b40| 74 68 65 20 76 61 6c 75 | 65 2e 20 69 2e 65 2e 5c |the valu|e. i.e.\|
|00000b50| 0a 25 20 69 6e 20 7c 66 | 6f 6f 3d 7b 31 2c 32 2c |.% in |f|oo={1,2,|
|00000b60| 33 7d 2c 62 61 72 3d 34 | 7c 2c 20 7c 66 6f 6f 7c |3},bar=4||, |foo||
|00000b70| 20 67 65 74 73 20 74 68 | 65 20 76 61 6c 75 65 20 | gets th|e value |
|00000b80| 7c 31 2c 32 2c 33 7c 2c | 20 74 68 65 20 63 6f 6d ||1,2,3|,| the com|
|00000b90| 6d 61 20 61 66 74 65 72 | 0a 25 20 7c 31 7c 20 64 |ma after|.% |1| d|
|00000ba0| 6f 65 73 20 6e 6f 74 20 | 74 65 72 6d 69 6e 61 74 |oes not |terminat|
|00000bb0| 65 20 74 68 65 20 6b 65 | 79 76 61 6c 20 70 61 69 |e the ke|yval pai|
|00000bc0| 72 2c 20 61 73 20 69 74 | 20 69 73 20 60 68 69 64 |r, as it| is `hid|
|00000bd0| 64 65 6e 27 20 62 79 20 | 74 68 65 0a 25 20 62 72 |den' by |the.% br|
|00000be0| 61 63 65 73 2e 0a 25 0a | 25 20 45 6d 70 74 79 20 |aces..%.|% Empty |
|00000bf0| 65 6e 74 72 69 65 73 2c | 20 77 69 74 68 20 6e 6f |entries,| with no|
|00000c00| 74 68 69 6e 67 20 62 65 | 74 77 65 65 6e 20 74 68 |thing be|tween th|
|00000c10| 65 20 63 6f 6d 6d 61 73 | 2c 20 61 72 65 20 73 69 |e commas|, are si|
|00000c20| 6c 65 6e 74 6c 79 20 69 | 67 6e 6f 72 65 64 2e 0a |lently i|gnored..|
|00000c30| 25 20 54 68 69 73 20 6d | 65 61 6e 73 20 74 68 61 |% This m|eans tha|
|00000c40| 74 20 69 74 20 69 73 20 | 6e 6f 74 20 61 6e 20 65 |t it is |not an e|
|00000c50| 72 72 6f 72 20 74 6f 20 | 68 61 76 65 20 61 20 63 |rror to |have a c|
|00000c60| 6f 6d 6d 61 20 61 66 74 | 65 72 20 74 68 65 20 6c |omma aft|er the l|
|00000c70| 61 73 74 0a 25 20 74 65 | 72 6d 2c 20 6f 72 20 62 |ast.% te|rm, or b|
|00000c80| 65 66 6f 72 65 20 74 68 | 65 20 66 69 72 73 74 2e |efore th|e first.|
|00000c90| 0a 25 0a 25 20 5c 73 65 | 63 74 69 6f 6e 7b 45 78 |.%.% \se|ction{Ex|
|00000ca0| 61 6d 70 6c 65 7d 0a 25 | 0a 25 20 57 65 20 6d 61 |ample}.%|.% We ma|
|00000cb0| 79 20 65 78 74 65 6e 64 | 20 74 68 65 20 65 78 61 |y extend| the exa|
|00000cc0| 6d 70 6c 65 73 20 61 62 | 6f 76 65 20 74 6f 20 67 |mples ab|ove to g|
|00000cd0| 69 76 65 20 20 61 20 60 | 66 61 6b 65 27 20 67 72 |ive a `|fake' gr|
|00000ce0| 61 70 68 69 63 73 0a 25 | 20 69 6e 63 6c 75 73 69 |aphics.%| inclusi|
|00000cf0| 6f 6e 20 6d 61 63 72 6f | 2c 20 77 69 74 68 20 61 |on macro|, with a|
|00000d00| 20 73 79 6e 74 61 78 20 | 73 69 6d 69 6c 61 72 20 | syntax |similar |
|00000d10| 74 6f 20 74 68 61 74 20 | 75 73 65 64 20 69 6e 20 |to that |used in |
|00000d20| 74 68 65 20 70 73 66 69 | 67 0a 25 20 6d 61 63 72 |the psfi|g.% macr|
|00000d30| 6f 73 2e 0a 25 0a 25 20 | 5c 6d 61 6b 65 61 74 6c |os..%.% |\makeatl|
|00000d40| 65 74 74 65 72 0a 25 20 | 5c 64 65 66 5c 64 70 63 |etter.% |\def\dpc|
|00000d50| 67 72 61 70 68 69 63 73 | 7b 5c 40 69 66 6e 65 78 |graphics|{\@ifnex|
|00000d60| 74 63 68 61 72 5b 5c 40 | 64 70 63 67 72 61 70 68 |tchar[\@|dpcgraph|
|00000d70| 69 63 73 7b 5c 40 64 70 | 63 67 72 61 70 68 69 63 |ics{\@dp|cgraphic|
|00000d80| 73 5b 5d 7d 7d 0a 25 0a | 25 20 7c 5c 64 70 63 67 |s[]}}.%.|% |\dpcg|
|00000d90| 72 61 70 68 69 63 73 7c | 20 68 61 73 20 6f 6e 65 |raphics|| has one|
|00000da0| 20 6f 70 74 69 6f 6e 61 | 6c 20 61 72 67 75 6d 65 | optiona|l argume|
|00000db0| 6e 74 20 77 68 69 63 68 | 20 69 73 20 70 61 73 73 |nt which| is pass|
|00000dc0| 65 64 20 74 68 72 6f 75 | 67 68 0a 25 20 7c 5c 73 |ed throu|gh.% |\s|
|00000dd0| 65 74 6b 65 79 73 7c 2c | 20 61 6e 64 20 6f 6e 65 |etkeys|,| and one|
|00000de0| 20 6d 61 6e 64 61 74 6f | 72 79 20 61 72 67 75 6d | mandato|ry argum|
|00000df0| 65 6e 74 2c 20 74 68 65 | 20 66 69 6c 65 6e 61 6d |ent, the| filenam|
|00000e00| 65 2e 20 49 74 20 61 63 | 74 75 61 6c 6c 79 0a 25 |e. It ac|tually.%|
|00000e10| 20 6a 75 73 74 20 74 79 | 70 65 73 65 74 73 20 69 | just ty|pesets i|
|00000e20| 74 73 20 61 72 67 75 6d | 65 6e 74 73 2c 20 66 6f |ts argum|ents, fo|
|00000e30| 72 20 64 65 6d 6f 6e 73 | 74 72 61 74 69 6f 6e 2e |r demons|tration.|
|00000e40| 0a 25 0a 25 20 5c 64 65 | 66 5c 40 64 70 63 67 72 |.%.% \de|f\@dpcgr|
|00000e50| 61 70 68 69 63 73 5b 23 | 31 5d 23 32 7b 7b 5c 73 |aphics[#|1]#2{{\s|
|00000e60| 65 74 6b 65 79 73 7b 64 | 70 63 7d 7b 23 31 7d 49 |etkeys{d|pc}{#1}I|
|00000e70| 4e 50 55 54 3a 20 23 32 | 7d 7d 25 0a 25 0a 25 20 |NPUT: #2|}}%.%.% |
|00000e80| 5c 64 65 66 69 6e 65 40 | 6b 65 79 7b 64 70 63 7d |\define@|key{dpc}|
|00000e90| 7b 73 63 61 6c 65 7d 7b | 73 63 61 6c 65 20 28 7b |{scale}{|scale ({|
|00000ea0| 5c 74 74 5c 73 74 72 69 | 6e 67 23 31 5c 72 65 6c |\tt\stri|ng#1\rel|
|00000eb0| 61 78 7d 29 5c 5c 7d 0a | 25 20 5c 64 65 66 69 6e |ax})\\}.|% \defin|
|00000ec0| 65 40 6b 65 79 7b 64 70 | 63 7d 7b 68 65 69 67 68 |e@key{dp|c}{heigh|
|00000ed0| 74 7d 7b 68 65 69 67 68 | 74 20 28 7b 5c 74 74 23 |t}{heigh|t ({\tt#|
|00000ee0| 31 7d 29 5c 5c 7d 0a 25 | 20 5c 64 65 66 69 6e 65 |1})\\}.%| \define|
|00000ef0| 40 6b 65 79 7b 64 70 63 | 7d 7b 77 69 64 74 68 7d |@key{dpc|}{width}|
|00000f00| 7b 77 69 64 74 68 20 28 | 7b 5c 74 74 23 31 7d 29 |{width (|{\tt#1})|
|00000f10| 5c 5c 7d 0a 25 20 5c 64 | 65 66 69 6e 65 40 6b 65 |\\}.% \d|efine@ke|
|00000f20| 79 7b 64 70 63 7d 7b 62 | 62 7d 7b 62 6f 75 6e 64 |y{dpc}{b|b}{bound|
|00000f30| 69 6e 67 20 62 6f 78 20 | 28 7b 5c 74 74 23 31 7d |ing box |({\tt#1}|
|00000f40| 29 5c 5c 7d 0a 25 20 5c | 64 65 66 69 6e 65 40 6b |)\\}.% \|define@k|
|00000f50| 65 79 7b 64 70 63 7d 7b | 63 6c 69 70 7d 5b 74 72 |ey{dpc}{|clip}[tr|
|00000f60| 75 65 5d 7b 63 6c 69 70 | 20 28 7b 5c 74 74 5c 73 |ue]{clip| ({\tt\s|
|00000f70| 74 72 69 6e 67 23 31 5c | 72 65 6c 61 78 7d 29 5c |tring#1\|relax})\|
|00000f80| 5c 7d 0a 25 20 5c 6d 61 | 6b 65 61 74 6f 74 68 65 |\}.% \ma|keatothe|
|00000f90| 72 0a 25 0a 25 20 54 68 | 65 20 64 65 63 6c 61 72 |r.%.% Th|e declar|
|00000fa0| 65 64 20 6b 65 79 73 20 | 61 72 65 3a 20 7c 73 63 |ed keys |are: |sc|
|00000fb0| 61 6c 65 7c 2c 20 7c 68 | 65 69 67 68 74 7c 2c 20 |ale|, |h|eight|, |
|00000fc0| 7c 77 69 64 74 68 7c 2c | 20 7c 62 62 7c 2c 0a 25 ||width|,| |bb|,.%|
|00000fd0| 20 61 6e 64 20 7c 63 6c | 69 70 7c 2e 20 45 78 63 | and |cl|ip|. Exc|
|00000fe0| 65 70 74 20 66 6f 72 20 | 74 68 65 20 6c 61 73 74 |ept for |the last|
|00000ff0| 2c 20 74 68 65 79 20 6d | 75 73 74 20 61 6c 6c 20 |, they m|ust all |
|00001000| 62 65 20 67 69 76 65 6e | 20 61 20 76 61 6c 75 65 |be given| a value|
|00001010| 20 69 66 0a 25 20 75 73 | 65 64 2e 0a 25 0a 25 20 | if.% us|ed..%.% |
|00001020| 4e 6f 74 65 20 68 6f 77 | 20 69 6e 20 74 68 65 20 |Note how| in the |
|00001030| 66 6f 6c 6c 6f 77 69 6e | 67 2c 20 61 6e 79 20 77 |followin|g, any w|
|00001040| 68 69 74 65 20 73 70 61 | 63 65 20 61 72 72 6f 75 |hite spa|ce arrou|
|00001050| 6e 64 20 7c 3d 7c 20 6f | 72 20 7c 2c 7c 20 69 73 |nd |=| o|r |,| is|
|00001060| 0a 25 20 69 67 6e 6f 72 | 65 64 2c 20 61 73 20 61 |.% ignor|ed, as a|
|00001070| 72 65 20 74 68 65 20 60 | 65 6d 70 74 79 27 20 61 |re the `|empty' a|
|00001080| 72 67 75 6d 65 6e 74 73 | 20 63 61 75 73 65 64 20 |rguments| caused |
|00001090| 62 79 20 65 78 74 72 61 | 20 63 6f 6d 6d 61 73 2e |by extra| commas.|
|000010a0| 20 4e 6f 74 65 0a 25 20 | 61 6c 73 6f 20 74 68 61 | Note.% |also tha|
|000010b0| 74 20 65 61 63 68 20 6d | 61 63 72 6f 20 72 65 63 |t each m|acro rec|
|000010c0| 65 69 76 65 73 20 7b 5c | 65 6d 20 65 78 61 63 74 |eives {\|em exact|
|000010d0| 6c 79 5c 2f 7d 20 74 68 | 65 20 74 6f 6b 65 6e 73 |ly\/} th|e tokens|
|000010e0| 20 74 68 61 74 20 79 6f | 75 0a 25 20 73 70 65 63 | that yo|u.% spec|
|000010f0| 69 66 79 20 61 73 20 61 | 72 67 75 6d 65 6e 74 73 |ify as a|rguments|
|00001100| 2c 20 6e 6f 20 70 72 65 | 6d 61 74 75 72 65 20 65 |, no pre|mature e|
|00001110| 78 70 61 6e 73 69 6f 6e | 20 69 73 20 64 6f 6e 65 |xpansion| is done|
|00001120| 2e 0a 25 0a 25 20 5c 62 | 65 67 69 6e 7b 76 65 72 |..%.% \b|egin{ver|
|00001130| 62 61 74 69 6d 7d 0a 25 | 20 5c 64 65 66 5c 64 70 |batim}.%| \def\dp|
|00001140| 63 67 72 61 70 68 69 63 | 73 7b 5c 40 69 66 6e 65 |cgraphic|s{\@ifne|
|00001150| 78 74 63 68 61 72 5b 5c | 40 64 70 63 67 72 61 70 |xtchar[\|@dpcgrap|
|00001160| 68 69 63 73 7b 5c 40 64 | 70 63 67 72 61 70 68 69 |hics{\@d|pcgraphi|
|00001170| 63 73 5b 5d 7d 7d 0a 25 | 20 5c 64 65 66 5c 40 64 |cs[]}}.%| \def\@d|
|00001180| 70 63 67 72 61 70 68 69 | 63 73 5b 23 31 5d 23 32 |pcgraphi|cs[#1]#2|
|00001190| 7b 7b 5c 73 65 74 6b 65 | 79 73 7b 64 70 63 7d 7b |{{\setke|ys{dpc}{|
|000011a0| 23 31 7d 49 4e 50 55 54 | 3a 20 23 32 7d 7d 0a 25 |#1}INPUT|: #2}}.%|
|000011b0| 0a 25 20 5c 64 65 66 69 | 6e 65 40 6b 65 79 7b 64 |.% \defi|ne@key{d|
|000011c0| 70 63 7d 7b 73 63 61 6c | 65 7d 7b 73 63 61 6c 65 |pc}{scal|e}{scale|
|000011d0| 20 28 7b 5c 74 74 5c 73 | 74 72 69 6e 67 23 31 5c | ({\tt\s|tring#1\|
|000011e0| 72 65 6c 61 78 7d 29 5c | 5c 7d 0a 25 20 5c 64 65 |relax})\|\}.% \de|
|000011f0| 66 69 6e 65 40 6b 65 79 | 7b 64 70 63 7d 7b 63 6c |fine@key|{dpc}{cl|
|00001200| 69 70 7d 5b 74 72 75 65 | 5d 7b 63 6c 69 70 20 28 |ip}[true|]{clip (|
|00001210| 7b 5c 74 74 5c 73 74 72 | 69 6e 67 23 31 5c 72 65 |{\tt\str|ing#1\re|
|00001220| 6c 61 78 7d 29 5c 5c 7d | 0a 25 20 5c 65 6e 64 7b |lax})\\}|.% \end{|
|00001230| 76 65 72 62 61 74 69 6d | 7d 0a 25 0a 25 20 5c 62 |verbatim|}.%.% \b|
|00001240| 65 67 69 6e 7b 6d 69 6e | 69 70 61 67 65 7d 7b 2e |egin{min|ipage}{.|
|00001250| 34 5c 74 65 78 74 77 69 | 64 74 68 7d 0a 25 20 5c |4\textwi|dth}.% \|
|00001260| 62 65 67 69 6e 7b 76 65 | 72 62 61 74 69 6d 7d 0a |begin{ve|rbatim}.|
|00001270| 25 20 5c 64 65 66 5c 73 | 63 61 6c 65 6d 61 63 72 |% \def\s|calemacr|
|00001280| 6f 7b 39 7d 0a 25 20 5c | 64 70 63 67 72 61 70 68 |o{9}.% \|dpcgraph|
|00001290| 69 63 73 0a 25 20 5b 20 | 68 65 69 67 68 74 20 3d |ics.% [ |height =|
|000012a0| 34 69 6e 2c 20 2c 0a 25 | 20 20 20 77 69 64 74 68 |4in, ,.%| width|
|000012b0| 20 3d 20 33 69 6e 2c 0a | 25 20 20 20 73 63 61 6c | = 3in,.|% scal|
|000012c0| 65 20 3d 20 5c 73 63 61 | 6c 65 6d 61 63 72 6f 2c |e = \sca|lemacro,|
|000012d0| 0a 25 20 20 20 62 62 20 | 3d 20 32 30 20 32 30 20 |.% bb |= 20 20 |
|000012e0| 33 30 30 20 34 30 30 20 | 2c 0a 25 20 20 20 63 6c |300 400 |,.% cl|
|000012f0| 69 70 2c 0a 25 20 20 5d | 7b 61 61 61 7d 0a 25 20 |ip,.% ]|{aaa}.% |
|00001300| 5c 65 6e 64 7b 76 65 72 | 62 61 74 69 6d 7d 0a 25 |\end{ver|batim}.%|
|00001310| 20 5c 65 6e 64 7b 6d 69 | 6e 69 70 61 67 65 7d 0a | \end{mi|nipage}.|
|00001320| 25 20 5c 68 66 69 6c 6c | 0a 25 20 5c 62 65 67 69 |% \hfill|.% \begi|
|00001330| 6e 7b 6d 69 6e 69 70 61 | 67 65 7d 7b 2e 34 5c 74 |n{minipa|ge}{.4\t|
|00001340| 65 78 74 77 69 64 74 68 | 7d 0a 25 20 5c 64 65 66 |extwidth|}.% \def|
|00001350| 5c 73 63 61 6c 65 6d 61 | 63 72 6f 7b 39 7d 0a 25 |\scalema|cro{9}.%|
|00001360| 5c 64 70 63 67 72 61 70 | 68 69 63 73 0a 25 20 5b |\dpcgrap|hics.% [|
|00001370| 20 68 65 69 67 68 74 20 | 3d 34 69 6e 2c 20 2c 0a | height |=4in, ,.|
|00001380| 25 20 20 20 77 69 64 74 | 68 20 3d 20 33 69 6e 2c |% widt|h = 3in,|
|00001390| 0a 25 20 20 20 73 63 61 | 6c 65 20 3d 20 5c 73 63 |.% sca|le = \sc|
|000013a0| 61 6c 65 6d 61 63 72 6f | 20 2c 0a 25 20 20 20 62 |alemacro| ,.% b|
|000013b0| 62 20 3d 20 32 30 20 32 | 30 20 33 30 30 20 34 30 |b = 20 2|0 300 40|
|000013c0| 30 20 2c 0a 25 20 20 20 | 63 6c 69 70 20 2c 0a 25 |0 ,.% |clip ,.%|
|000013d0| 20 20 5d 7b 61 61 61 7d | 0a 25 20 5c 65 6e 64 7b | ]{aaa}|.% \end{|
|000013e0| 6d 69 6e 69 70 61 67 65 | 7d 0a 25 0a 25 0a 25 20 |minipage|}.%.%.% |
|000013f0| 5c 73 65 63 74 69 6f 6e | 7b 54 68 65 20 49 6e 74 |\section|{The Int|
|00001400| 65 72 6e 61 6c 20 49 6e | 74 65 72 66 61 63 65 7d |ernal In|terface}|
|00001410| 0a 25 20 41 20 64 65 63 | 6c 61 72 61 74 69 6f 6e |.% A dec|laration|
|00001420| 20 6f 66 20 74 68 65 20 | 66 6f 72 6d 3a 5c 5c 0a | of the |form:\\.|
|00001430| 25 20 7c 5c 64 65 66 69 | 6e 65 40 6b 65 79 7b 66 |% |\defi|ne@key{f|
|00001440| 61 6d 69 6c 79 7d 7b 6b | 65 79 7d 7b 2e 2e 2e 7d |amily}{k|ey}{...}|
|00001450| 7c 5c 5c 0a 25 20 44 65 | 66 69 6e 65 73 20 61 20 ||\\.% De|fines a |
|00001460| 6d 61 63 72 6f 20 7c 5c | 4b 56 40 70 72 65 66 69 |macro |\|KV@prefi|
|00001470| 78 40 6b 65 79 7c 20 77 | 69 74 68 20 6f 6e 65 20 |x@key| w|ith one |
|00001480| 61 72 67 75 6d 65 6e 74 | 2e 20 57 68 65 6e 20 75 |argument|. When u|
|00001490| 73 65 64 20 69 6e 20 61 | 0a 25 20 6b 65 79 76 61 |sed in a|.% keyva|
|000014a0| 6c 20 6c 69 73 74 2c 20 | 74 68 65 20 6d 61 63 72 |l list, |the macr|
|000014b0| 6f 20 72 65 63 65 69 76 | 65 73 20 74 68 65 20 76 |o receiv|es the v|
|000014c0| 61 6c 75 65 20 61 73 20 | 69 74 73 20 61 72 67 75 |alue as |its argu|
|000014d0| 6d 65 6e 74 2e 0a 25 0a | 25 20 41 20 64 65 63 6c |ment..%.|% A decl|
|000014e0| 61 72 61 74 69 6f 6e 20 | 6f 66 20 74 68 65 20 66 |aration |of the f|
|000014f0| 6f 72 6d 3a 5c 5c 0a 25 | 20 7c 5c 64 65 66 69 6e |orm:\\.%| |\defin|
|00001500| 65 40 6b 65 79 7b 66 61 | 6d 69 6c 79 7d 7b 6b 65 |e@key{fa|mily}{ke|
|00001510| 79 7d 5b 64 65 66 61 75 | 6c 74 5d 7b 2e 2e 2e 7d |y}[defau|lt]{...}|
|00001520| 7c 5c 5c 0a 25 20 44 65 | 66 69 6e 65 73 20 61 20 ||\\.% De|fines a |
|00001530| 6d 61 63 72 6f 20 7c 5c | 4b 56 40 66 61 6d 69 6c |macro |\|KV@famil|
|00001540| 79 40 6b 65 79 7c 20 61 | 73 20 61 62 6f 76 65 2c |y@key| a|s above,|
|00001550| 20 68 6f 77 65 76 65 72 | 20 69 74 20 61 6c 73 6f | however| it also|
|00001560| 20 64 65 66 69 6e 65 73 | 20 74 68 65 0a 25 20 6d | defines| the.% m|
|00001570| 61 63 72 6f 20 7c 5c 4b | 56 40 66 61 6d 69 6c 79 |acro |\K|V@family|
|00001580| 40 6b 65 79 40 64 65 66 | 61 75 6c 74 7c 20 61 73 |@key@def|ault| as|
|00001590| 20 61 20 6d 61 63 72 6f | 20 77 69 74 68 20 6e 6f | a macro| with no|
|000015a0| 20 61 72 67 75 6d 65 6e | 74 73 2c 20 61 6e 64 0a | argumen|ts, and.|
|000015b0| 25 20 64 65 66 69 6e 69 | 74 69 6f 6e 5c 5c 0a 25 |% defini|tion\\.%|
|000015c0| 20 20 7c 5c 4b 56 40 66 | 61 6d 69 6c 79 40 6b 65 | |\KV@f|amily@ke|
|000015d0| 79 7b 64 65 66 61 75 6c | 74 7d 7c 2e 0a 25 0a 25 |y{defaul|t}|..%.%|
|000015e0| 20 54 68 75 73 20 69 66 | 20 6d 61 63 72 6f 73 20 | Thus if| macros |
|000015f0| 61 72 65 20 64 65 66 69 | 6e 65 64 20 75 73 69 6e |are defi|ned usin|
|00001600| 67 20 7c 5c 64 65 66 69 | 6e 65 40 6b 65 79 7c 2c |g |\defi|ne@key|,|
|00001610| 20 74 68 65 20 75 73 65 | 20 6f 66 20 61 20 6b 65 | the use| of a ke|
|00001620| 79 20 77 69 74 68 0a 25 | 20 6e 6f 20 76 61 6c 75 |y with.%| no valu|
|00001630| 65 20 5c 6c 64 6f 74 73 | 7c 2c 66 6f 6f 2c 7c 5c |e \ldots||,foo,|\|
|00001640| 6c 64 6f 74 73 5c 20 69 | 73 20 61 6c 77 61 79 73 |ldots\ i|s always|
|00001650| 20 65 71 75 69 76 61 6c | 65 6e 74 20 74 6f 20 74 | equival|ent to t|
|00001660| 68 65 20 75 73 65 20 6f | 66 20 74 68 65 0a 25 20 |he use o|f the.% |
|00001670| 6b 65 79 20 77 69 74 68 | 20 73 6f 6d 65 20 76 61 |key with| some va|
|00001680| 6c 75 65 2c 20 5c 6c 64 | 6f 74 73 7c 2c 66 6f 6f |lue, \ld|ots|,foo|
|00001690| 3d 64 65 66 61 75 6c 74 | 2c 7c 5c 6c 64 6f 74 73 |=default|,|\ldots|
|000016a0| 2e 20 48 6f 77 65 76 65 | 72 20 61 20 70 61 63 6b |. Howeve|r a pack|
|000016b0| 61 67 65 0a 25 20 77 72 | 69 74 65 72 20 6d 61 79 |age.% wr|iter may|
|000016c0| 20 77 69 73 68 20 74 68 | 61 74 20 74 68 65 20 60 | wish th|at the `|
|000016d0| 64 65 66 61 75 6c 74 27 | 20 62 65 68 61 76 69 6f |default'| behavio|
|000016e0| 75 72 20 66 6f 72 20 73 | 6f 6d 65 20 6b 65 79 20 |ur for s|ome key |
|000016f0| 69 73 20 6e 6f 74 0a 25 | 20 64 69 72 65 63 74 6c |is not.%| directl|
|00001700| 79 20 65 71 75 69 76 61 | 6c 65 6e 74 20 74 6f 20 |y equiva|lent to |
|00001710| 75 73 69 6e 67 20 74 68 | 61 74 20 6b 65 79 20 77 |using th|at key w|
|00001720| 69 74 68 20 61 20 76 61 | 6c 75 65 2e 20 28 49 6e |ith a va|lue. (In|
|00001730| 20 70 61 72 74 69 63 75 | 6c 61 72 2c 20 61 73 0a | particu|lar, as.|
|00001740| 25 20 70 6f 69 6e 74 65 | 64 20 6f 75 74 20 74 6f |% pointe|d out to|
|00001750| 20 6d 65 20 62 79 20 54 | 69 6d 6f 74 68 79 20 56 | me by T|imothy V|
|00001760| 61 6e 20 5a 61 6e 64 74 | 2c 20 79 6f 75 20 6d 61 |an Zandt|, you ma|
|00001770| 79 20 77 69 73 68 20 74 | 6f 20 6f 6d 69 74 20 65 |y wish t|o omit e|
|00001780| 72 72 6f 72 0a 25 20 63 | 68 65 63 6b 69 6e 67 20 |rror.% c|hecking |
|00001790| 6f 6e 20 74 68 65 20 64 | 65 66 61 75 6c 74 20 76 |on the d|efault v|
|000017a0| 61 6c 75 65 20 61 73 20 | 79 6f 75 20 6b 6e 6f 77 |alue as |you know|
|000017b0| 20 69 74 20 69 73 20 63 | 6f 72 72 65 63 74 2e 29 | it is c|orrect.)|
|000017c0| 20 49 6e 20 74 68 65 73 | 65 0a 25 20 63 61 73 65 | In thes|e.% case|
|000017d0| 73 20 6f 6e 65 20 73 69 | 6d 70 6c 79 20 6e 65 65 |s one si|mply nee|
|000017e0| 64 73 20 74 6f 20 64 65 | 66 69 6e 65 20 74 68 65 |ds to de|fine the|
|000017f0| 20 74 77 6f 20 6d 61 63 | 72 6f 73 0a 25 20 7c 5c | two mac|ros.% |\|
|00001800| 4b 56 40 7c 5c 6d 65 74 | 61 7b 66 61 6d 69 6c 79 |KV@|\met|a{family|
|00001810| 7d 7c 40 6b 65 79 7c 20 | 61 6e 64 20 7c 5c 4b 56 |}|@key| |and |\KV|
|00001820| 40 7c 5c 6d 65 74 61 7b | 66 61 6d 69 6c 79 7d 7c |@|\meta{|family}||
|00001830| 40 6b 65 79 40 64 65 66 | 61 75 6c 74 7c 0a 25 20 |@key@def|ault|.% |
|00001840| 64 69 72 65 63 74 6c 79 | 20 75 73 69 6e 67 20 7c |directly| using ||
|00001850| 5c 64 65 66 7c 20 28 6f | 72 20 7c 5c 6e 65 77 63 |\def| (o|r |\newc|
|00001860| 6f 6d 6d 61 6e 64 7c 29 | 2e 20 49 20 64 6f 20 6e |ommand|)|. I do n|
|00001870| 6f 74 20 73 75 70 70 6c | 79 20 61 20 75 73 65 72 |ot suppl|y a user|
|00001880| 0a 25 20 69 6e 74 65 72 | 66 61 63 65 20 66 6f 72 |.% inter|face for|
|00001890| 20 74 68 69 73 20 74 79 | 70 65 20 6f 66 20 64 65 | this ty|pe of de|
|000018a0| 66 69 6e 69 74 69 6f 6e | 2c 20 62 75 74 20 69 74 |finition|, but it|
|000018b0| 20 69 73 20 73 75 70 70 | 6f 72 74 65 64 20 69 6e | is supp|orted in|
|000018c0| 20 74 68 65 0a 25 20 73 | 65 6e 73 65 20 74 68 61 | the.% s|ense tha|
|000018d0| 74 20 49 20 77 69 6c 6c | 20 74 72 79 20 74 6f 20 |t I will| try to |
|000018e0| 65 6e 73 75 72 65 20 74 | 68 61 74 20 61 6e 79 20 |ensure t|hat any |
|000018f0| 66 75 74 75 72 65 20 75 | 70 67 72 61 64 65 73 20 |future u|pgrades |
|00001900| 6f 66 20 74 68 69 73 0a | 25 20 70 61 63 6b 61 67 |of this.|% packag|
|00001910| 65 20 64 6f 20 6e 6f 74 | 20 62 72 65 61 6b 20 73 |e do not| break s|
|00001920| 74 79 6c 65 73 20 6d 61 | 6b 69 6e 67 20 75 73 65 |tyles ma|king use|
|00001930| 20 6f 66 20 74 68 65 73 | 65 20 60 6c 6f 77 20 6c | of thes|e `low l|
|00001940| 65 76 65 6c 27 0a 25 20 | 64 65 66 69 6e 69 74 69 |evel'.% |definiti|
|00001950| 6f 6e 73 2e 0a 25 0a 25 | 20 5c 53 74 6f 70 45 76 |ons..%.%| \StopEv|
|00001960| 65 6e 74 75 61 6c 6c 79 | 7b 7d 0a 25 0a 25 20 5c |entually|{}.%.% \|
|00001970| 73 65 63 74 69 6f 6e 7b | 54 68 65 20 4d 61 63 72 |section{|The Macr|
|00001980| 6f 73 7d 0a 25 0a 25 20 | 46 72 6f 6d 20 76 65 72 |os}.%.% |From ver|
|00001990| 73 69 6f 6e 7e 31 2e 30 | 35 2c 20 61 6c 6c 20 60 |sion~1.0|5, all `|
|000019a0| 69 6e 74 65 72 6e 61 6c | 27 20 6d 61 63 72 6f 73 |internal|' macros|
|000019b0| 20 61 73 73 6f 63 69 61 | 74 65 64 20 74 6f 20 6b | associa|ted to k|
|000019c0| 65 79 73 20 68 61 76 65 | 20 6e 61 6d 65 73 0a 25 |eys have| names.%|
|000019d0| 20 6f 66 20 74 68 65 20 | 66 6f 72 6d 3a 5c 5c 0a | of the |form:\\.|
|000019e0| 25 20 7c 5c 4b 56 40 7c | 5c 6d 65 74 61 7b 66 61 |% |\KV@||\meta{fa|
|000019f0| 6d 69 6c 79 7d 7c 40 7c | 5c 6d 65 74 61 7b 6b 65 |mily}|@||\meta{ke|
|00001a00| 79 7d 20 6f 72 0a 25 20 | 7c 5c 4b 56 40 7c 5c 6d |y} or.% ||\KV@|\m|
|00001a10| 65 74 61 7b 66 61 6d 69 | 6c 79 7d 7c 40 7c 5c 6d |eta{fami|ly}|@|\m|
|00001a20| 65 74 61 7b 6b 65 79 7d | 7c 40 7c 5c 6d 65 74 61 |eta{key}||@|\meta|
|00001a30| 7b 64 65 66 61 75 6c 74 | 7d 0a 25 0a 25 20 20 20 |{default|}.%.% |
|00001a40| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|00001a50| 65 7d 0a 25 3c 2a 70 61 | 63 6b 61 67 65 3e 0a 25 |e}.%<*pa|ckage>.%|
|00001a60| 20 20 20 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 63 6f | \end|{macroco|
|00001a70| 64 65 7d 0a 25 0a 25 20 | 5c 62 65 67 69 6e 7b 6d |de}.%.% |\begin{m|
|00001a80| 61 63 72 6f 7d 7b 5c 73 | 65 74 6b 65 79 73 7d 0a |acro}{\s|etkeys}.|
|00001a90| 25 20 54 68 65 20 74 6f | 70 20 6c 65 76 65 6c 20 |% The to|p level |
|00001aa0| 6d 61 63 72 6f 2e 20 7c | 23 32 7c 20 73 68 6f 75 |macro. ||#2| shou|
|00001ab0| 6c 64 20 62 65 20 61 20 | 63 6f 6d 6d 61 20 73 65 |ld be a |comma se|
|00001ac0| 70 61 72 61 74 65 64 20 | 76 61 6c 75 65 73 20 6f |parated |values o|
|00001ad0| 66 20 74 68 65 0a 25 20 | 66 6f 72 6d 20 20 5c 6d |f the.% |form \m|
|00001ae0| 65 74 61 7b 6b 65 79 7d | 20 7c 3d 7c 20 5c 6d 65 |eta{key}| |=| \me|
|00001af0| 74 61 7b 76 61 6c 75 65 | 7d 20 6f 72 20 6a 75 73 |ta{value|} or jus|
|00001b00| 74 20 73 69 6d 70 6c 79 | 20 5c 6d 65 74 61 7b 6b |t simply| \meta{k|
|00001b10| 65 79 7d 2e 0a 25 20 54 | 68 65 20 6d 61 63 72 6f |ey}..% T|he macro|
|00001b20| 20 61 73 73 6f 63 69 61 | 74 65 64 20 77 69 74 68 | associa|ted with|
|00001b30| 20 74 68 69 73 20 6b 65 | 79 20 69 6e 20 74 68 65 | this ke|y in the|
|00001b40| 20 60 66 61 6d 69 6c 79 | 27 20 7c 23 31 7c 20 69 | `family|' |#1| i|
|00001b50| 73 20 63 61 6c 6c 65 64 | 20 77 69 74 68 0a 25 20 |s called| with.% |
|00001b60| 61 72 67 75 6d 65 6e 74 | 20 5c 6d 65 74 61 7b 76 |argument| \meta{v|
|00001b70| 61 6c 75 65 7d 2e 20 54 | 68 65 20 73 65 63 6f 6e |alue}. T|he secon|
|00001b80| 64 20 66 6f 72 6d 20 69 | 73 20 6f 6e 6c 79 20 61 |d form i|s only a|
|00001b90| 6c 6c 6f 77 65 64 20 69 | 66 20 74 68 65 20 6b 65 |llowed i|f the ke|
|00001ba0| 79 20 77 61 73 0a 25 20 | 64 65 63 6c 61 72 65 64 |y was.% |declared|
|00001bb0| 20 77 69 74 68 20 61 20 | 64 65 66 61 75 6c 74 20 | with a |default |
|00001bc0| 76 61 6c 75 65 2e 0a 25 | 20 20 20 20 5c 62 65 67 |value..%| \beg|
|00001bd0| 69 6e 7b 6d 61 63 72 6f | 63 6f 64 65 7d 0a 5c 64 |in{macro|code}.\d|
|00001be0| 65 66 5c 73 65 74 6b 65 | 79 73 23 31 23 32 7b 25 |ef\setke|ys#1#2{%|
|00001bf0| 0a 25 20 20 20 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |.% \e|nd{macro|
|00001c00| 63 6f 64 65 7d 0a 25 20 | 20 53 61 76 65 20 74 68 |code}.% | Save th|
|00001c10| 65 20 60 66 61 6d 69 6c | 79 27 20 66 6f 72 20 6c |e `famil|y' for l|
|00001c20| 61 74 65 72 2e 20 54 68 | 65 6e 20 62 65 67 69 6e |ater. Th|en begin|
|00001c30| 20 61 63 74 69 6e 67 20 | 6f 6e 20 74 68 65 20 63 | acting |on the c|
|00001c40| 6f 6d 6d 61 0a 25 20 20 | 73 65 70 61 72 61 74 65 |omma.% |separate|
|00001c50| 64 20 6c 69 73 74 2e 0a | 25 20 20 20 20 5c 62 65 |d list..|% \be|
|00001c60| 67 69 6e 7b 6d 61 63 72 | 6f 63 6f 64 65 7d 0a 20 |gin{macr|ocode}. |
|00001c70| 20 5c 64 65 66 5c 4b 56 | 40 70 72 65 66 69 78 7b | \def\KV|@prefix{|
|00001c80| 4b 56 40 23 31 40 7d 25 | 0a 20 20 5c 4b 56 40 64 |KV@#1@}%|. \KV@d|
|00001c90| 6f 23 32 2c 5c 72 65 6c | 61 78 2c 7d 0a 25 20 20 |o#2,\rel|ax,}.% |
|00001ca0| 20 20 5c 65 6e 64 7b 6d | 61 63 72 6f 63 6f 64 65 | \end{m|acrocode|
|00001cb0| 7d 0a 25 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 7d 0a |}.% \end|{macro}.|
|00001cc0| 25 0a 25 20 5c 62 65 67 | 69 6e 7b 6d 61 63 72 6f |%.% \beg|in{macro|
|00001cd0| 7d 7b 5c 4b 56 40 64 6f | 7d 0a 25 20 49 74 65 72 |}{\KV@do|}.% Iter|
|00001ce0| 61 74 65 20 64 6f 77 6e | 20 74 68 65 20 6c 69 73 |ate down| the lis|
|00001cf0| 74 20 6f 66 20 63 6f 6d | 6d 61 20 73 65 70 61 72 |t of com|ma separ|
|00001d00| 61 74 65 64 20 61 72 67 | 75 6d 65 6e 74 20 70 61 |ated arg|ument pa|
|00001d10| 69 72 73 2e 0a 25 20 20 | 20 20 5c 62 65 67 69 6e |irs..% | \begin|
|00001d20| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 5c 64 65 66 |{macroco|de}.\def|
|00001d30| 5c 4b 56 40 64 6f 23 31 | 2c 7b 25 0a 20 5c 69 66 |\KV@do#1|,{%. \if|
|00001d40| 78 5c 72 65 6c 61 78 23 | 31 5c 65 6d 70 74 79 5c |x\relax#|1\empty\|
|00001d50| 65 6c 73 65 0a 20 20 5c | 4b 56 40 73 70 6c 69 74 |else. \|KV@split|
|00001d60| 23 31 3d 3d 5c 72 65 6c | 61 78 0a 20 20 5c 65 78 |#1==\rel|ax. \ex|
|00001d70| 70 61 6e 64 61 66 74 65 | 72 5c 4b 56 40 64 6f 5c |pandafte|r\KV@do\|
|00001d80| 66 69 7d 0a 25 20 20 20 | 20 5c 65 6e 64 7b 6d 61 |fi}.% | \end{ma|
|00001d90| 63 72 6f 63 6f 64 65 7d | 0a 25 20 5c 65 6e 64 7b |crocode}|.% \end{|
|00001da0| 6d 61 63 72 6f 7d 0a 25 | 0a 25 20 5c 62 65 67 69 |macro}.%|.% \begi|
|00001db0| 6e 7b 6d 61 63 72 6f 7d | 7b 5c 4b 56 40 73 70 6c |n{macro}|{\KV@spl|
|00001dc0| 69 74 7d 0a 25 20 53 70 | 6c 69 74 20 75 70 20 74 |it}.% Sp|lit up t|
|00001dd0| 68 65 20 6b 65 79 77 6f | 72 64 20 61 6e 64 20 76 |he keywo|rd and v|
|00001de0| 61 6c 75 65 2c 20 61 6e | 64 20 63 61 6c 6c 20 74 |alue, an|d call t|
|00001df0| 68 65 20 61 70 70 72 6f | 70 72 69 61 74 65 20 63 |he appro|priate c|
|00001e00| 6f 6d 6d 61 6e 64 2e 0a | 25 20 54 68 69 73 20 6d |ommand..|% This m|
|00001e10| 61 63 72 6f 20 77 61 73 | 20 73 6c 69 67 68 74 6c |acro was| slightl|
|00001e20| 79 20 72 65 6f 72 67 61 | 6e 69 73 65 64 20 66 6f |y reorga|nised fo|
|00001e30| 72 20 76 65 72 73 69 6f | 6e 20 31 2e 30 34 2c 20 |r versio|n 1.04, |
|00001e40| 61 66 74 65 72 20 73 6f | 6d 65 0a 25 20 73 75 67 |after so|me.% sug|
|00001e50| 67 65 73 74 69 6f 6e 73 | 20 66 72 6f 6d 20 54 69 |gestions| from Ti|
|00001e60| 6d 6f 74 68 79 20 56 61 | 6e 20 5a 61 6e 64 74 2e |mothy Va|n Zandt.|
|00001e70| 0a 25 20 20 20 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |.% \b|egin{mac|
|00001e80| 72 6f 63 6f 64 65 7d 0a | 5c 64 65 66 5c 4b 56 40 |rocode}.|\def\KV@|
|00001e90| 73 70 6c 69 74 23 31 3d | 23 32 3d 23 33 5c 72 65 |split#1=|#2=#3\re|
|00001ea0| 6c 61 78 7b 25 0a 20 20 | 5c 4b 56 40 40 73 70 40 |lax{%. |\KV@@sp@|
|00001eb0| 64 65 66 5c 40 74 65 6d | 70 61 7b 23 31 7d 25 0a |def\@tem|pa{#1}%.|
|00001ec0| 20 20 5c 69 66 78 5c 40 | 74 65 6d 70 61 5c 40 65 | \ifx\@|tempa\@e|
|00001ed0| 6d 70 74 79 5c 65 6c 73 | 65 0a 20 20 20 20 5c 65 |mpty\els|e. \e|
|00001ee0| 78 70 61 6e 64 61 66 74 | 65 72 5c 6c 65 74 5c 65 |xpandaft|er\let\e|
|00001ef0| 78 70 61 6e 64 61 66 74 | 65 72 5c 40 74 65 6d 70 |xpandaft|er\@temp|
|00001f00| 63 0a 20 20 20 20 20 20 | 5c 63 73 6e 61 6d 65 5c |c. |\csname\|
|00001f10| 4b 56 40 70 72 65 66 69 | 78 5c 40 74 65 6d 70 61 |KV@prefi|x\@tempa|
|00001f20| 5c 65 6e 64 63 73 6e 61 | 6d 65 0a 20 20 20 20 5c |\endcsna|me. \|
|00001f30| 69 66 78 5c 40 74 65 6d | 70 63 5c 72 65 6c 61 78 |ifx\@tem|pc\relax|
|00001f40| 0a 20 20 20 20 20 20 5c | 4b 56 40 65 72 72 7b 5c |. \|KV@err{\|
|00001f50| 40 74 65 6d 70 61 5c 73 | 70 61 63 65 20 75 6e 64 |@tempa\s|pace und|
|00001f60| 65 66 69 6e 65 64 7d 25 | 0a 20 20 20 20 5c 65 6c |efined}%|. \el|
|00001f70| 73 65 0a 20 20 20 20 20 | 20 5c 69 66 78 5c 40 65 |se. | \ifx\@e|
|00001f80| 6d 70 74 79 23 33 5c 40 | 65 6d 70 74 79 0a 20 20 |mpty#3\@|empty. |
|00001f90| 20 20 20 20 20 20 5c 4b | 56 40 64 65 66 61 75 6c | \K|V@defaul|
|00001fa0| 74 0a 20 20 20 20 20 20 | 5c 65 6c 73 65 0a 20 20 |t. |\else. |
|00001fb0| 20 20 20 20 20 20 5c 4b | 56 40 40 73 70 40 64 65 | \K|V@@sp@de|
|00001fc0| 66 5c 40 74 65 6d 70 62 | 7b 23 32 7d 25 0a 20 20 |f\@tempb|{#2}%. |
|00001fd0| 20 20 20 20 20 20 5c 65 | 78 70 61 6e 64 61 66 74 | \e|xpandaft|
|00001fe0| 65 72 5c 40 74 65 6d 70 | 63 5c 65 78 70 61 6e 64 |er\@temp|c\expand|
|00001ff0| 61 66 74 65 72 7b 5c 40 | 74 65 6d 70 62 7d 5c 72 |after{\@|tempb}\r|
|00002000| 65 6c 61 78 0a 20 20 20 | 20 20 20 5c 66 69 0a 20 |elax. | \fi. |
|00002010| 20 20 20 5c 66 69 0a 20 | 20 5c 66 69 7d 0a 25 20 | \fi. | \fi}.% |
|00002020| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00002030| 65 7d 0a 25 20 5c 65 6e | 64 7b 6d 61 63 72 6f 7d |e}.% \en|d{macro}|
|00002040| 0a 25 0a 25 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |.%.% \be|gin{macr|
|00002050| 6f 7d 7b 5c 4b 56 40 64 | 65 66 61 75 6c 74 7d 0a |o}{\KV@d|efault}.|
|00002060| 25 20 52 75 6e 20 74 68 | 65 20 64 65 66 61 75 6c |% Run th|e defaul|
|00002070| 74 20 63 6f 64 65 2c 20 | 6f 72 20 72 61 69 73 65 |t code, |or raise|
|00002080| 20 61 6e 20 65 72 72 6f | 72 2e 0a 25 20 20 20 20 | an erro|r..% |
|00002090| 5c 62 65 67 69 6e 7b 6d | 61 63 72 6f 63 6f 64 65 |\begin{m|acrocode|
|000020a0| 7d 0a 5c 64 65 66 5c 4b | 56 40 64 65 66 61 75 6c |}.\def\K|V@defaul|
|000020b0| 74 7b 25 0a 20 20 5c 65 | 78 70 61 6e 64 61 66 74 |t{%. \e|xpandaft|
|000020c0| 65 72 5c 6c 65 74 5c 65 | 78 70 61 6e 64 61 66 74 |er\let\e|xpandaft|
|000020d0| 65 72 5c 40 74 65 6d 70 | 62 0a 20 20 20 20 5c 63 |er\@temp|b. \c|
|000020e0| 73 6e 61 6d 65 5c 4b 56 | 40 70 72 65 66 69 78 5c |sname\KV|@prefix\|
|000020f0| 40 74 65 6d 70 61 20 40 | 64 65 66 61 75 6c 74 5c |@tempa @|default\|
|00002100| 65 6e 64 63 73 6e 61 6d | 65 0a 20 20 5c 69 66 78 |endcsnam|e. \ifx|
|00002110| 5c 40 74 65 6d 70 62 5c | 72 65 6c 61 78 0a 20 20 |\@tempb\|relax. |
|00002120| 20 20 5c 4b 56 40 65 72 | 72 7b 4e 6f 20 76 61 6c | \KV@er|r{No val|
|00002130| 75 65 20 73 70 65 63 69 | 66 69 65 64 20 66 6f 72 |ue speci|fied for|
|00002140| 20 5c 40 74 65 6d 70 61 | 7d 25 0a 20 20 5c 65 6c | \@tempa|}%. \el|
|00002150| 73 65 0a 20 20 20 20 5c | 40 74 65 6d 70 62 5c 72 |se. \|@tempb\r|
|00002160| 65 6c 61 78 0a 20 20 5c | 66 69 7d 0a 25 20 20 20 |elax. \|fi}.% |
|00002170| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 63 6f 64 65 7d | \end{ma|crocode}|
|00002180| 0a 25 20 5c 65 6e 64 7b | 6d 61 63 72 6f 7d 0a 25 |.% \end{|macro}.%|
|00002190| 0a 25 20 5c 62 65 67 69 | 6e 7b 6d 61 63 72 6f 7d |.% \begi|n{macro}|
|000021a0| 7b 5c 4b 56 40 65 72 72 | 7d 0a 25 20 45 72 72 6f |{\KV@err|}.% Erro|
|000021b0| 72 20 6d 65 73 73 61 67 | 65 73 2e 0a 25 20 20 20 |r messag|es..% |
|000021c0| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|000021d0| 65 7d 0a 5c 64 65 66 5c | 4b 56 40 65 72 72 23 31 |e}.\def\|KV@err#1|
|000021e0| 7b 5c 65 72 72 6d 65 73 | 73 61 67 65 7b 6b 65 79 |{\errmes|sage{key|
|000021f0| 2d 76 61 6c 3a 20 23 31 | 7d 7d 0a 25 20 20 20 20 |-val: #1|}}.% |
|00002200| 5c 65 6e 64 7b 6d 61 63 | 72 6f 63 6f 64 65 7d 0a |\end{mac|rocode}.|
|00002210| 25 20 5c 65 6e 64 7b 6d | 61 63 72 6f 7d 0a 25 0a |% \end{m|acro}.%.|
|00002220| 25 20 5c 62 65 67 69 6e | 7b 6d 61 63 72 6f 7d 7b |% \begin|{macro}{|
|00002230| 5c 4b 56 40 40 73 70 40 | 64 65 66 7d 0a 25 20 5c |\KV@@sp@|def}.% \|
|00002240| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 7d 7b 5c 4b 56 |begin{ma|cro}{\KV|
|00002250| 40 40 73 70 40 62 7d 0a | 25 20 5c 62 65 67 69 6e |@@sp@b}.|% \begin|
|00002260| 7b 6d 61 63 72 6f 7d 7b | 5c 4b 56 40 40 73 70 40 |{macro}{|\KV@@sp@|
|00002270| 63 7d 0a 25 20 7c 5c 4b | 56 40 40 73 70 40 64 65 |c}.% |\K|V@@sp@de|
|00002280| 66 7c 5c 6d 65 74 61 7b | 63 6d 64 7d 5c 6d 65 74 |f|\meta{|cmd}\met|
|00002290| 61 7b 74 6f 6b 65 6e 20 | 6c 69 73 74 7d 20 69 73 |a{token |list} is|
|000022a0| 20 6c 69 6b 65 20 7c 5c | 64 65 66 7c 2c 20 65 78 | like |\|def|, ex|
|000022b0| 63 65 70 74 20 74 68 61 | 74 0a 25 20 61 20 73 70 |cept tha|t.% a sp|
|000022c0| 61 63 65 20 74 6f 6b 65 | 6e 20 61 74 20 74 68 65 |ace toke|n at the|
|000022d0| 20 62 65 67 69 6e 6e 69 | 6e 67 20 6f 72 20 65 6e | beginni|ng or en|
|000022e0| 64 20 6f 66 20 5c 6d 65 | 74 61 7b 74 6f 6b 65 6e |d of \me|ta{token|
|000022f0| 20 6c 69 73 74 7d 20 69 | 73 0a 25 20 72 65 6d 6f | list} i|s.% remo|
|00002300| 76 65 64 20 62 65 66 6f | 72 65 20 6d 61 6b 69 6e |ved befo|re makin|
|00002310| 67 20 74 68 65 20 61 73 | 73 69 67 6e 6d 65 6e 74 |g the as|signment|
|00002320| 2e 20 5c 6d 65 74 61 7b | 74 6f 6b 65 6e 20 6c 69 |. \meta{|token li|
|00002330| 73 74 7d 20 6d 61 79 20 | 6e 6f 74 0a 25 20 63 6f |st} may |not.% co|
|00002340| 6e 74 61 69 6e 20 74 68 | 65 20 74 6f 6b 65 6e 20 |ntain th|e token |
|00002350| 7c 5c 40 6e 69 6c 7c 2c | 20 75 6e 6c 65 73 73 20 ||\@nil|,| unless |
|00002360| 69 74 20 69 73 20 77 69 | 74 68 69 6e 20 61 20 62 |it is wi|thin a b|
|00002370| 72 61 63 65 20 67 72 6f | 75 70 2e 0a 25 20 54 68 |race gro|up..% Th|
|00002380| 65 20 6e 61 6d 65 73 20 | 6f 66 20 74 68 65 73 65 |e names |of these|
|00002390| 20 63 6f 6d 6d 61 6e 64 | 73 20 77 65 72 65 20 63 | command|s were c|
|000023a0| 68 61 6e 67 65 64 20 61 | 74 20 76 65 72 73 69 6f |hanged a|t versio|
|000023b0| 6e 7e 31 2e 30 35 20 74 | 6f 20 65 6e 73 75 72 65 |n~1.05 t|o ensure|
|000023c0| 0a 25 20 74 68 61 74 20 | 74 68 65 79 20 64 6f 20 |.% that |they do |
|000023d0| 6e 6f 74 20 63 6c 61 73 | 68 20 77 69 74 68 20 60 |not clas|h with `|
|000023e0| 69 6e 74 65 72 6e 61 6c | 27 20 6d 61 63 72 6f 73 |internal|' macros|
|000023f0| 20 69 6e 20 61 20 6b 65 | 79 20 66 61 6d 69 6c 79 | in a ke|y family|
|00002400| 20 60 73 70 27 2e 0a 25 | 0a 25 20 54 68 65 20 66 | `sp'..%|.% The f|
|00002410| 6f 6c 6c 6f 77 69 6e 67 | 20 74 68 72 65 65 20 6c |ollowing| three l|
|00002420| 69 6e 65 73 20 61 72 65 | 20 65 71 75 69 76 61 6c |ines are| equival|
|00002430| 65 6e 74 20 74 6f 5c 5c | 0a 25 20 7c 5c 64 65 66 |ent to\\|.% |\def|
|00002440| 5c 4b 56 40 40 73 70 40 | 64 65 66 23 31 23 32 7b |\KV@@sp@|def#1#2{|
|00002450| 5c 4b 56 40 40 73 70 40 | 62 23 32 5c 40 6e 69 6c |\KV@@sp@|b#2\@nil|
|00002460| 5c 40 6e 69 6c 7e 5c 40 | 6e 69 6c 5c 72 65 6c 61 |\@nil~\@|nil\rela|
|00002470| 78 23 31 7d 7c 5c 5c 0a | 25 20 57 68 65 72 65 20 |x#1}|\\.|% Where |
|00002480| 7c 7e 7c 20 69 73 20 61 | 6e 20 65 78 70 6c 69 63 ||~| is a|n explic|
|00002490| 69 74 20 73 70 61 63 65 | 20 74 6f 6b 65 6e 2e 0a |it space| token..|
|000024a0| 25 20 20 20 20 5c 62 65 | 67 69 6e 7b 6d 61 63 72 |% \be|gin{macr|
|000024b0| 6f 63 6f 64 65 7d 0a 5c | 64 65 66 5c 40 74 65 6d |ocode}.\|def\@tem|
|000024c0| 70 61 23 31 7b 25 0a 5c | 64 65 66 5c 4b 56 40 40 |pa#1{%.\|def\KV@@|
|000024d0| 73 70 40 64 65 66 23 23 | 31 23 23 32 7b 5c 4b 56 |sp@def##|1##2{\KV|
|000024e0| 40 40 73 70 40 62 23 23 | 32 5c 40 6e 69 6c 5c 40 |@@sp@b##|2\@nil\@|
|000024f0| 6e 69 6c 23 31 5c 40 6e | 69 6c 5c 72 65 6c 61 78 |nil#1\@n|il\relax|
|00002500| 23 23 31 7d 7d 0a 5c 40 | 74 65 6d 70 61 7b 20 7d |##1}}.\@|tempa{ }|
|00002510| 0a 5c 64 65 66 5c 4b 56 | 40 40 73 70 40 62 23 31 |.\def\KV|@@sp@b#1|
|00002520| 23 32 20 5c 40 6e 69 6c | 7b 5c 4b 56 40 40 73 70 |#2 \@nil|{\KV@@sp|
|00002530| 40 63 23 31 23 32 7d 0a | 5c 64 65 66 5c 4b 56 40 |@c#1#2}.|\def\KV@|
|00002540| 40 73 70 40 63 23 31 5c | 40 6e 69 6c 23 32 5c 72 |@sp@c#1\|@nil#2\r|
|00002550| 65 6c 61 78 23 33 7b 5c | 64 65 66 23 33 7b 23 31 |elax#3{\|def#3{#1|
|00002560| 7d 7d 0a 25 20 20 20 20 | 5c 65 6e 64 7b 6d 61 63 |}}.% |\end{mac|
|00002570| 72 6f 63 6f 64 65 7d 0a | 25 20 5c 65 6e 64 7b 6d |rocode}.|% \end{m|
|00002580| 61 63 72 6f 7d 0a 25 20 | 5c 65 6e 64 7b 6d 61 63 |acro}.% |\end{mac|
|00002590| 72 6f 7d 0a 25 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |ro}.% \e|nd{macro|
|000025a0| 7d 0a 25 0a 25 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |}.%.% \b|egin{mac|
|000025b0| 72 6f 7d 7b 5c 64 65 66 | 69 6e 65 40 6b 65 79 7d |ro}{\def|ine@key}|
|000025c0| 0a 25 20 44 65 66 69 6e | 65 20 74 68 65 20 63 6f |.% Defin|e the co|
|000025d0| 6d 6d 61 6e 64 20 61 73 | 73 6f 63 69 61 74 65 64 |mmand as|sociated|
|000025e0| 20 74 6f 20 74 68 65 20 | 6b 65 79 20 7c 23 32 7c | to the |key |#2||
|000025f0| 20 69 6e 20 74 68 65 20 | 66 61 6d 69 6c 79 20 7c | in the |family ||
|00002600| 23 31 7c 2e 0a 25 20 46 | 69 72 73 74 20 6c 6f 6f |#1|..% F|irst loo|
|00002610| 6b 73 20 66 6f 72 20 61 | 20 64 65 66 61 75 6c 74 |ks for a| default|
|00002620| 20 61 72 67 75 6d 65 6e | 74 20 28 74 68 65 20 64 | argumen|t (the d|
|00002630| 65 66 61 75 6c 74 20 76 | 61 6c 75 65 20 66 6f 72 |efault v|alue for|
|00002640| 20 74 68 65 0a 25 20 6b | 65 79 29 0a 25 20 20 20 | the.% k|ey).% |
|00002650| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|00002660| 65 7d 0a 5c 64 65 66 5c | 64 65 66 69 6e 65 40 6b |e}.\def\|define@k|
|00002670| 65 79 23 31 23 32 7b 25 | 0a 20 20 5c 40 69 66 6e |ey#1#2{%|. \@ifn|
|00002680| 65 78 74 63 68 61 72 5b | 7b 5c 4b 56 40 64 65 66 |extchar[|{\KV@def|
|00002690| 7b 23 31 7d 7b 23 32 7d | 7d 7b 5c 40 6e 61 6d 65 |{#1}{#2}|}{\@name|
|000026a0| 64 65 66 7b 4b 56 40 23 | 31 40 23 32 7d 23 23 23 |def{KV@#|1@#2}###|
|000026b0| 23 31 7d 7d 0a 25 20 20 | 20 20 5c 65 6e 64 7b 6d |#1}}.% | \end{m|
|000026c0| 61 63 72 6f 63 6f 64 65 | 7d 0a 25 20 5c 65 6e 64 |acrocode|}.% \end|
|000026d0| 7b 6d 61 63 72 6f 7d 0a | 25 0a 25 20 5c 62 65 67 |{macro}.|%.% \beg|
|000026e0| 69 6e 7b 6d 61 63 72 6f | 7d 7b 5c 4b 56 40 64 65 |in{macro|}{\KV@de|
|000026f0| 66 7d 0a 25 20 4d 61 6b | 65 20 74 68 65 20 64 65 |f}.% Mak|e the de|
|00002700| 66 69 6e 69 74 69 6f 6e | 73 20 6f 66 20 74 68 65 |finition|s of the|
|00002710| 20 63 6f 6d 6d 61 6e 64 | 2c 20 61 6e 64 20 74 68 | command|, and th|
|00002720| 65 20 64 65 66 61 75 6c | 74 20 76 61 6c 75 65 2e |e defaul|t value.|
|00002730| 0a 25 20 20 20 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |.% \b|egin{mac|
|00002740| 72 6f 63 6f 64 65 7d 0a | 5c 64 65 66 5c 4b 56 40 |rocode}.|\def\KV@|
|00002750| 64 65 66 23 31 23 32 5b | 23 33 5d 7b 25 0a 20 20 |def#1#2[|#3]{%. |
|00002760| 5c 40 6e 61 6d 65 64 65 | 66 7b 4b 56 40 23 31 40 |\@namede|f{KV@#1@|
|00002770| 23 32 40 64 65 66 61 75 | 6c 74 5c 65 78 70 61 6e |#2@defau|lt\expan|
|00002780| 64 61 66 74 65 72 7d 5c | 65 78 70 61 6e 64 61 66 |dafter}\|expandaf|
|00002790| 74 65 72 0a 20 20 20 20 | 7b 5c 63 73 6e 61 6d 65 |ter. |{\csname|
|000027a0| 20 4b 56 40 23 31 40 23 | 32 5c 65 6e 64 63 73 6e | KV@#1@#|2\endcsn|
|000027b0| 61 6d 65 7b 23 33 7d 7d | 25 0a 20 20 5c 40 6e 61 |ame{#3}}|%. \@na|
|000027c0| 6d 65 64 65 66 7b 4b 56 | 40 23 31 40 23 32 7d 23 |medef{KV|@#1@#2}#|
|000027d0| 23 31 7d 0a 25 20 20 20 | 20 5c 65 6e 64 7b 6d 61 |#1}.% | \end{ma|
|000027e0| 63 72 6f 63 6f 64 65 7d | 0a 25 20 5c 65 6e 64 7b |crocode}|.% \end{|
|000027f0| 6d 61 63 72 6f 7d 0a 25 | 0a 25 20 20 20 20 5c 62 |macro}.%|.% \b|
|00002800| 65 67 69 6e 7b 6d 61 63 | 72 6f 63 6f 64 65 7d 0a |egin{mac|rocode}.|
|00002810| 25 3c 2f 70 61 63 6b 61 | 67 65 3e 0a 25 20 20 20 |%</packa|ge>.% |
|00002820| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 63 6f 64 65 7d | \end{ma|crocode}|
|00002830| 0a 25 20 5c 46 69 6e 61 | 6c 65 0a 25 0a 5c 65 6e |.% \Fina|le.%.\en|
|00002840| 64 69 6e 70 75 74 0a | |dinput. | |
+--------+-------------------------+-------------------------+--------+--------+